home *** CD-ROM | disk | FTP | other *** search
- <?xml version="1.0"?>
-
-
-
- <bindings id="richViewBindings"
- xmlns="http://www.mozilla.org/xbl"
- xmlns:xul="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
- xmlns:xbl="http://www.mozilla.org/xbl">
-
- <binding id="richview-item">
- <implementation>
- <method name="fireEvent">
- <parameter name="aEventType"/>
- <body>
- <![CDATA[
- var e = document.createEvent("Events");
- e.initEvent(this.eventPrefix + aEventType, false, true);
-
- this.dispatchEvent(e);
- ]]>
- </body>
- </method>
-
- <property name="disabled" onget="return this.getAttribute('disabled') == 'true'"
- onset="this.setAttribute('disabled', val); return val;"/>
- </implementation>
- </binding>
-
- <binding id="richview">
- <implementation>
- <method name="fireEvent">
- <parameter name="aEventType"/>
- <body>
- <![CDATA[
- var e = document.createEvent("Events");
- var eventType = "richview-" + aEventType;
- e.initEvent(eventType, false, true);
- this.dispatchEvent(e);
-
- var handler = this.getAttribute("onrichview-" + aEventType);
- if (handler != "") {
- var fn = new Function("event", handler);
- fn(e);
- }
- document.commandDispatcher.updateCommands(eventType);
- ]]>
- </body>
- </method>
-
- <field name="_selected">null</field>
- <property name="selected">
- <setter>
- <![CDATA[
- if (this._selected)
- this._selected.removeAttribute("selected");
- this._selected = val;
- if (this._selected)
- this._selected.setAttribute("selected", "true");
-
- this.fireEvent("select");
- ]]>
- </setter>
- <getter>
- <![CDATA[
- return this._selected;
- ]]>
- </getter>
- </property>
-
- <method name="selectForwardInternal">
- <parameter name="aElement"/>
- <body>
- <![CDATA[
- for (var temp = aElement; temp; temp = temp.nextSibling) {
- if ("fireEvent" in temp) {
- this.selected = temp;
- break;
- }
- }
- ]]>
- </body>
- </method>
-
- <method name="selectBackwardInternal">
- <parameter name="aElement"/>
- <body>
- <![CDATA[
- for (var temp = aElement; temp; temp = temp.previousSibling) {
- if ("fireEvent" in temp) {
- this.selected = temp;
- break;
- }
- }
- ]]>
- </body>
- </method>
-
- <method name="selectionForward">
- <parameter name="aEvent"/>
- <body>
- <![CDATA[
- if (this.selected)
- this.selectForwardInternal(this.selected.nextSibling);
- else {
- if (this.hasChildNodes())
- this.selectForwardInternal(this.firstChild);
- }
- ]]>
- </body>
- </method>
-
- <method name="selectionBackward">
- <parameter name="aEvent"/>
- <body>
- <![CDATA[
- if (this.selected)
- this.selectBackwardInternal(this.selected.previousSibling);
- else {
- if (this.hasChildNodes())
- this.selectBackwardInternal(this.lastChild);
- }
- ]]>
- </body>
- </method>
-
- <property name="children">
- <getter>
- <![CDATA[
- var childNodes = [];
- for (var i = 0; i < this.childNodes.length; ++i) {
- if ("fireEvent" in this.childNodes[i])
- childNodes.push(this.childNodes[i]);
- }
- return childNodes;
- ]]>
- </getter>
- </property>
- </implementation>
- <handlers>
- <handler event="click">
- <![CDATA[
- if (event.ctrlKey) {
- this.selected = null;
- return;
- }
-
- if (event.target == this)
- this.selected = null
- else
- this.selected = event.target;
- ]]>
- </handler>
- <handler event="dblclick" action="if (this.selected && event.button == 0) this.selected.fireEvent('open');"/>
- <handler event="keypress" keycode="vk_enter" action="if (this.selected) this.selected.fireEvent('open');"/>
- <handler event="keypress" keycode="vk_return" action="if (this.selected) this.selected.fireEvent('open');"/>
- <handler event="keypress" keycode="vk_up" action="this.selectionBackward(event);"/>
- <handler event="keypress" keycode="vk_left" action="this.selectionBackward(event);"/>
- <handler event="keypress" keycode="vk_down" action="this.selectionForward(event);"/>
- <handler event="keypress" keycode="vk_right" action="this.selectionForward(event);"/>
- <handler event="keypress" keycode="vk_up" modifiers="meta" action="this.selected = null"/>
- <handler event="keypress" keycode="vk_down" modifiers="meta" action="this.selected = null"/>
- <handler event="keypress" keycode="vk_left" modifiers="meta" action="this.selected = null"/>
- <handler event="keypress" keycode="vk_right" modifiers="meta" action="this.selected = null"/>
- <handler event="keypress" keycode="vk_delete" action="if (this.selected) this.selected.fireEvent('remove');"/>
- </handlers>
- </binding>
-
- </bindings>
-
-